Advances in microprocessor, networking and related technologies have led to wide spread deployment and adoption of server-client based applications. In particular, with the advance of high speed public networks, such as the Internet, increasing amounts of rich content are being served and available for consumption by networked clients. Much of these rich contents are streamed in digital form to the client devices for consumption.
Unlike analog copies of the earlier era, the quality of each digital copy is as good as the original/master copy. As the processing capabilities of the client devices and the ease of exchanging data between a large number of geographically dispersed client devices continually to increase, the issue of protecting these rich content from misappropriation, i.e. unauthorized copying and/or re-distribution, has become increasingly important.
Resultantly, a large body of security techniques, including ciphering and deciphering techniques, have been developed, and employed in content distribution and consumption to protect the content from misappropriation. Among them are key based techniques, in particular, public key and private key techniques that involve modulus computations.
An example of one, such technique is the Rivest, Shamir and Adleman (RSA) public key and private key technique. Briefly, the RSA technique works as follows:                1. Two large prime numbers, p and q, are first generated;        2. A number n is set to pq;        3. A number m is set to (p−1)(q−1);        4. Next, a small number e, coprime to m, is chosen;        5. Then, d where de % m=1 is determined;        6. e and n, often referred to as the public key, are published;        7. d and n, often referred to as the private key, are kept secret;        8. Portions of content are corresponding encoded as Ms;        9. Each M is encrypted into a corresponding C by computing Me % n;        10. Each C is decrypted back into M by computing Cd % n;        where x % y means the remainder of x divided by y.        
In other words, the effectiveness of security techniques, such as RSA, are substantially dependent on keeping the private key, d and n in the case of RSA, secret. Unfortunately, the responsibility is often that of the client devices, which in general, are not considered to be sufficiently secured.
Various techniques to obfuscate and/or hide the keys are known and employed. Unfortunately, the robust techniques are often too complex to implement, and the relatively easy to implement ones are not robust enough.
Thus, a need exists to improve the security of public key and private key techniques, in particular, a need exists to more efficiently keeping the private key from being learned.